- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正试图帮助一个 friend 修复他的网站,他们请我帮忙整理一个计算平方米的表格计算器……现在它可以准确地计算出来。我的伙伴希望它能将平方米四舍五入。我对代码一窍不通,有没有人可以帮我找到一种将平方米四舍五入的方法?
这是我们目前所拥有的;
<script type="text/javascript">// <![CDATA[
(function($){
jQuery(document).ready(function($){
theUnit = 'cms';
$('#inserted-height').val('');
$('#inserted-width').val('');
$('#inserted-height').focus(function(){
$(this).val('');
});
$('#inserted-width').focus(function(){
$(this).val('');
});
$('#inserted-height').blur(function(){
var height = $(this).val();
if(!checkDigits(height)){
$(this).focus();
$('#calculate-button').removeClass("Reset");
return false;
}
});
$('#inserted-width').blur(function(){
var width = $(this).val();
if(!checkDigits(width)){
$(this).focus();
$('#calculate-button').removeClass("Reset");
return false;
}
});
});
$('#calculate-button').click(function(){
if ($(this).hasClass("Reset")){
$('#screen-two').fadeOut(function(){
$('#cms-message').fadeIn();
});
$(this).removeClass("Reset");
$(this).val("Submit");
$('#inserted-height').val('');
$('#inserted-width').val('');
return false;
}
/* SET SIZES */
var MIN_SIZE = 20000;
var MAX_SIZE = 3000000;
/* FREE SHIPPING */
var currentProductPrice = $('#currentProductPricefromCMS').val();
var estimatedWidth = $('#inserted-width').val();
var estimatedHeight = $('#inserted-height').val();
/* added pre price to calculator */
var currencySymbol = "AUD$";
var totalSize = estimatedWidth * estimatedHeight;
var isInches = false;
// get the unit type
var theUnits = $("input[name='unit']:checked").val()
// console.log(theUnits);
// boolean for valid inputs
var valid = false;
if(theUnit == 'inch') {
isInches = true;
totalSize = (estimatedWidth* 2.54) * (estimatedHeight * 2.54);
} else {
isInches = false;
}
/* WARNING FOR MAX AND MIN SIZES */
if((totalSize < MIN_SIZE || totalSize > MAX_SIZE) && !isInches){
alert('Oops... size must be within '+MIN_SIZE/10000+' sqm and '+MAX_SIZE/10000+' sqm. \n Note: 100 cms = 1 Metre.');
$('#inserted-width').css({'color':' #AA202E'});
$('#inserted-height').css({'color':' #AA202E'});
return false;
} else {
if((totalSize < MIN_SIZE || totalSize > MAX_SIZE) && isInches ){
alert('Oops... size must be within '+MIN_SIZE/10000+' sqm and '+MAX_SIZE/10000+' sqm or approx 27 square feet (MIN) and 323 square feet (MAX). Note: 12 inches = 1 Foot.');
$('#inserted-width').css({'color':'#AA202E'});
$('#inserted-height').css({'color':'#AA202E'});
return false;
} else {
valid = true;
}
}
/* DO IT */
// can only proceed if true
if(valid){
//fade in price
$('#cms-message').fadeOut(function(){
$('#screen-two').fadeIn();
});
$('#calculate-button').val("Reset");
$('#calculate-button').addClass("Reset");
/* IF INCHES */
if(isInches) {
// console.log("inches selected");
var InchesToCms = (totalSize);
var estimatedPrice = InchesToCms * currentProductPrice;
// console.log("inches to cms"+totalSize);
var outputPrice = estimatedPrice / 10000;
var actualPrice = outputPrice.toFixed(2);
$('#display-price').val(currencySymbol+actualPrice);
}
/* IF CM */
else {
// console.log("cms selected");
var estimatedPrice = totalSize * currentProductPrice;
/* added for rounding up */
var totalSize = Math.round(outputPrice);
var outputPrice = estimatedPrice / 10000;
var actualPrice = outputPrice.toFixed(2);
$('.symbol').html("<span>" + currencySymbol + "</span >");
$('#display-price').val(actualPrice);
}
var free_shipping_min = 330;
/* check if above $400 for actual price */
if (actualPrice >= free_shipping_min ){
$(".calculator_disclaimer").html('<b>Price includes <span>FREE</span> shipping</b>');
} else {
$(".calculator_disclaimer").html("Price excludes shipping $49.95");
}
}
});
//REGEX FOR Checking if letters entered.
function checkDigits(str){
var intRegex = /[A-z]/;
if(intRegex.test(str) ) {
alert('Please enter only numbers');
return false;
} else {
return true;
}
}
/* RESET BUTTON */
$('.reset').click(function($){
totalSize = 0;
$('#inserted-width').css({'color':'solid 1px #969696'});
$('#inserted-height').css({'border':'solid 1px #969696'});
$('#inserted-height').val('');
$('#inserted-width').val('');
});
/* TOGGLE BETWEEN INCHES AND CMS */
$('#radio-inches').click(function($){
$('.units').val('Inches');
theUnit = 'inch';
});
$('#radio-cms').click(function(){
$('.units').val('Cms');
theUnit = 'cms';
});
})(jQuery);
// ]]></script>
好的,这就是我按照建议进行更改后的结果。
<div class="quick-quote">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<div class="home_price_calculator" style="text-align: center;">
<h3 style="text-align: center;">Quick Quote</h3>
Please enter your wall size in centimetres. <!-- HIDDEN FIELDS GETS THE CURRENT PRICE PER SQUARE METRE --> <input id="currentProductPricefromCMS" type="hidden" autocomplete="off" value="55.000" /> <input id="inserted-width" class="validate" type="text" autocomplete="off" placeholder="length" size="9" value="" /> X <input id="inserted-height" class="validate" type="text" autocomplete="off" placeholder="height" size="9" value="" /> <input id="calculate-button" class="calculate" type="button" value="Submit" name="calculate" /> <!-- <div id="cms-message">Please enter your size in centimetres.</div> --> <input id="display-currency" type="hidden" value="" />$AUD <input id="display-price" type="text" readonly="readonly" size="9" />
<div class="calculator_disclaimer" style="text-align: center;"> </div>
</div>
</div>
<script type="text/javascript">// <![CDATA[
/* SETS CENTIMETRES ONLOAD */
(function($){
jQuery(document).ready(function($){
/* EXECUTION OF PRICING ESTIMATOR */
theUnit = 'cms';
$('#inserted-height').val('');
$('#inserted-width').val('');
$('#inserted-height').focus(function(){
$(this).val('');
});
$('#inserted-width').focus(function(){
$(this).val('');
});
$('#inserted-height').blur(function(){
var height = $(this).val();
if(!checkDigits(height)){
$(this).focus();
$('#calculate-button').removeClass("Reset");
return false;
}
});
$('#inserted-width').blur(function(){
var width = $(this).val();
if(!checkDigits(width)){
$(this).focus();
$('#calculate-button').removeClass("Reset");
return false;
}
});
});
$('#calculate-button').click(function(){
if ($(this).hasClass("Reset")){
$('#screen-two').fadeOut(function(){
$('#cms-message').fadeIn();
});
$(this).removeClass("Reset");
$(this).val("Submit");
$('#inserted-height').val('');
$('#inserted-width').val('');
return false;
}
/* GETS INITIAL SIZES */
var MIN_SIZE = 20000;
var MAX_SIZE = 3000000;
/* FREE MIN SHIPPING VARIABLE */
var currentProductPrice = $('#currentProductPricefromCMS').val();
var estimatedWidth = $('#inserted-width').val();
var estimatedHeight = $('#inserted-height').val();
/* added pre price to calculator */
var currencySymbol = "AUD$";
/* next line as per advice */
var totalSize = Math.ceil((estimatedWidth * estimatedHeight));
var isInches = false;
// get the unit type
var theUnits = $("input[name='unit']:checked").val()
// console.log(theUnits);
// boolean for valid inputs
var valid = false;
if(theUnit == 'inch') {
isInches = true;
/* next line as per advice */
totalSize = Math.ceil((estimatedWidth * 0.0254) * (estimatedHeight * 0.0254));
} else {
isInches = false;
}
/* WARNING FOR MAX AND MIN SIZES */
if((totalSize < MIN_SIZE || totalSize > MAX_SIZE) && !isInches){
alert('Oops... size must be within '+MIN_SIZE/10000+' sqm and '+MAX_SIZE/10000+' sqm. \n Note: 100 cms = 1 Metre.');
$('#inserted-width').css({'color':' #AA202E'});
$('#inserted-height').css({'color':' #AA202E'});
return false;
} else {
if((totalSize < MIN_SIZE || totalSize > MAX_SIZE) && isInches ){
alert('Oops... size must be within '+MIN_SIZE/10000+' sqm and '+MAX_SIZE/10000+' sqm or approx 27 square feet (MIN) and 323 square feet (MAX). Note: 12 inches = 1 Foot.');
$('#inserted-width').css({'color':'#AA202E'});
$('#inserted-height').css({'color':'#AA202E'});
return false;
} else {
valid = true;
}
}
/* DO IT */
// can only proceed if true
if(valid){
//fade in price
$('#cms-message').fadeOut(function(){
$('#screen-two').fadeIn();
});
$('#calculate-button').val("Reset");
$('#calculate-button').addClass("Reset");
/* IF INCHES SELECTED */
if(isInches) {
// console.log("inches selected");
var InchesToCms = (totalSize);
var estimatedPrice = InchesToCms * currentProductPrice;
// console.log("inches to cms"+totalSize);
var outputPrice = estimatedPrice / 10000;
var actualPrice = outputPrice.toFixed(2);
$('#display-price').val(currencySymbol+actualPrice);
}
/* IF CM SELECTED */
else {
// console.log("cms selected");
var estimatedPrice = Math.round((totalSize) * (currentProductPrice));
var outputPrice = estimatedPrice / 10000;
var actualPrice = outputPrice.toFixed(2);
/* added for rounding up */
var outputPrice = Math.round(outputPrice);
$('.symbol').html("<span>" + currencySymbol + "</span >");
$('#display-price').val(actualPrice);
}
var free_shipping_min = 330;
/* check if above $400 for actual price */
if (actualPrice >= free_shipping_min ){
$(".calculator_disclaimer").html('<b>Price includes <span>FREE</span> shipping</b>');
} else {
$(".calculator_disclaimer").html("Price excludes shipping $49.95");
}
}
});
//REGEX FOR Checking if letters entered.
function checkDigits(str){
var intRegex = /[A-z]/;
if(intRegex.test(str) ) {
alert('Please enter only numbers');
return false;
} else {
return true;
}
}
/* RESET BUTTON */
$('.reset').click(function($){
totalSize = 0;
$('#inserted-width').css({'color':'solid 1px #969696'});
$('#inserted-height').css({'border':'solid 1px #969696'});
/* added by coops 1 Feb 2013 */
$('#inserted-height').val('');
$('#inserted-width').val('');
});
/* TOGGLE BETWEEN INCHES AND CMS */
$('#radio-inches').click(function($){
$('.units').val('Inches');
theUnit = 'inch';
});
$('#radio-cms').click(function(){
$('.units').val('Cms');
theUnit = 'cms';
});
})(jQuery);
// ]]></script>
<div class="bottom_tab"> </div>
<div class="bottom_tab" style="text-align: center;"> </div>
最佳答案
鉴于您缺乏经验,我建议您首先参加 JS 教程。不过,我很钦佩这种自信!
请注意,您可以使用单词 ceil
或单词 round
:ceil 会将 1.01、1.5 等四舍五入到 2,round 将四舍五入 1.01、1.49 等降至 1 和 1.5、1.99 等,直至 2。
改变行:
var totalSize = estimatedWidth * estimatedHeight;
到:
var totalSize = Math.round((estimatedWidth / 100) * (estimatedHeight / 100));
或:
var totalSize = Math.ceil((estimatedWidth / 100) * (estimatedHeight / 100));
还有一行:
totalSize = (estimatedWidth* 2.54) * (estimatedHeight * 2.54);
到:
totalSize = Math.round((estimatedWidth * 0.0254) * (estimatedHeight * 0.0254));
或:
totalSize = Math.ceil((estimatedWidth * 0.0254) * (estimatedHeight * 0.0254));
关于javascript - 平方米计算器帮助四舍五入平方米,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30977014/
我有这个“科学应用程序”,其中 Single 值在显示在 UI 中之前应该四舍五入。根据this MSDN article ,由于“精度损失”,Math.Round(Double, Int32) 方法
这个问题类似于Chrome 37 calc rounding 但实际问题有点复杂,提供的解决方案不适用于这种情况: #outerDiv, #leftDiv, #middleDiv, #rightDiv
假设有一堆从 pnorm() 返回的数据,这样您就有了 .0003ish 和 .9999ish 之间的数字。 numbers <- round(rnorm(n = 10000, mean =
我想有效地将unsigneda整数除以2的任意幂,然后取整。所以我在数学上想要的是ceiling(p/q)0。在C语言中,不利用q受限域的Strawman实现可能类似于以下function1: /
我正在尝试获取 #value_box 的值以显示 100.5 但它一直在向上舍入。有谁知道我可以做些什么来让它显示小数位? jsfiddle //returns 101 $("#value_box
我有一段 JavaScript 代码 shipingcostnumber * parseInt(tax) / 100 + shipingcostnumber 返回数字为6655.866558,因此我将
我有一个关于 PostgreSQL 9.2 中 float 的新手问题。 是否有直接舍入 float 的函数,即不必先将数字转换为数字类型? 另外,我想知道是否有一个函数可以按任意度量单位舍入,例如最
这个问题已经有答案了: Rounding to nearest 100 (7 个回答) 已关闭10 年前。 我正在尝试将数字四舍五入到 100。 示例: 1340 should become 1400
我试图找出使用整数存储在列表中的其他两个数字之间的任何n在整数列表中找到最接近的值ROUNDED DOWN的最佳方法。在这种情况下,所有整数都将始终是无符号的,以防万一。 假设如下: 列表始终从0开始
我想将一个 BigDecimal 四舍五入到小数点后两位,但是当使用 round 方法时,它似乎没有双舍入: BigDecimal.new('43382.0249').round(2).to_s('F
我正在使用格式如下的财务数据进行计算: . 基本上,在我的程序中我遇到了一个浮点错误。例如,如果我有: 11.09 - (11.09 * 0.005) = 11.03455 我希望能够使用 11.03
有整型变量,电压单位为毫伏。 signed int voltage_mv = 134; //134mV 我有 2 段显示,我想显示百分之一伏特。 如何在一次操作中将毫伏转换为百分之一伏?没有 IF 语
这是我将数字四舍五入到两位小数的函数,但是当四舍五入的数字为 1.50 时,它似乎忽略尾随零并只返回 1.5 public static double roundOff(double number)
您好,我在将数字四舍五入到 -0 而不是 0 时遇到了问题 代码: 输出:-0 预期输出:0 我一直在寻找任何解决方案,但没有找到。 请解释并帮助我为什么它四舍五入为 -0 而不是 0?谢谢 最佳答
我正在使用 Java 的 Random 生成随机数:1.0、1.1 - 10 Random random = new Random(); return (double) ((random.nextIn
基本上,我有一个数字: 我基本上想做一些数学运算来创建这个数字 80。 如果数字是 62.7777777778,则数字将为 60。 我希望数字像这样四舍五入: 20, 40, 60, 80, 100
我希望显示来自 NSDate 对象的月数。 //Make Date Six Months In The Future NSCalendar *calendar = [[NSCalendar alloc
下面是一些小代码来说明我所看到的 float floater = 59.999f; DecimalFormat df = new DecimalFormat("00.0"); System.out.p
我现在开始使用 android 和 java,但遇到了问题。 I have a result x = 206.0548. And y = 206, both of type double How do
我有一个 ruby 散列数组,其中包含两个键,'tier' 和 'price'。对于给定的价格,我想退回等级。 这对于精确匹配来说已经足够简单了,但是我如何通过将我的输入值四舍五入到数组中的下一个
我是一名优秀的程序员,十分优秀!