jquery - jQuery 四舍五入到整数并用逗号分隔
问题描述
<form>
<label>Value:</label>
<input name="value" id="value" value="" placeholder="250000" type="number">
<br><br>
<label>Growth:</label>
<select name="growth" id="growth">
<option value=".05" selected="selected">0-5%</option>
<option value=".08">5-10%</option>
<option value=".10">10-20%</option>
<option value=".12">20+%</option>
</select>
</form>
<p id="total"></p>
$("#value,#growth").change(function () {
var number= $('#value').val();
var goal= $('#growth').val()*1;
if ( number >= 1 && number <=250000 ) {
var growth = goal + .02;
}
if ( number >= 250000 && number <=500000 ) {
var growth = goal + .01;
}
if ( number >= 500000 && number <=500000000 ) {
var growth = goal;
}
var total = number*growth;
$("#total").text(total);
});
我需要创建一个简单的计算器,根据输入的不同变量将百分比乘以另一个字段的值并给出美元数字金额。我的一切都按预期工作。但是,我希望在适当的位置将最终的“总计”数字转换为整数和逗号。
示例:如果输入 100,000 作为值并选择 0-5% 作为增长,则总输出为 7000.00000001。我希望将这个数字格式化为 7,000。我查看了其他问题,但没有找到对我想要实现的目标的适当回应。我确实尝试在这里使用选择的答案: Add comma to numbers every three digits
但是,它不会四舍五入到整数(或至少 2 位小数),并且会继续在小数点后添加逗号。这包含在下面的小提琴中。有没有一种简单的方法来实现我想要做的事情?谢谢
这是我的小提琴的链接: https ://jsfiddle.net/xpvt214o/522647/
解决方案
我添加了一个正则表达式函数并使用了 JavaScript Math.Round 函数。
以下是在您的 jsfiddle 中测试的工作示例:
$.fn.digits = function(){
return this.each(function(){
$(this).text( $(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") );
})
}
$("#value,#growth").change(function () {
var number= $('#value').val();
var goal= $('#growth').val()*1;
if ( number >= 1 && number <=250000 ) {
var growth = goal + .02;
}
if ( number >= 250000 && number <=500000 ) {
var growth = goal + .01;
}
if ( number >= 500000 && number <=500000000 ) {
var growth = goal;
}
var total = number*growth;
total = Math.round(total);
//total = Number(total).toFixed(2);
$("#total").text(total);
$("#total").digits();
});
您希望保留小数而不是整数,('#total).toFixed(2);
而不是四舍五入。只需提交 round() 行并取消提交 tofixed() 行。
从此答案中提供了 RegEX将逗号添加到每三位数的数字
推荐阅读
- cmake - 如何阻止 CLion 将额外选项传递给 cmake
- amazon-web-services - 通过 Glue 将数据插入 Redshift 时出现“找不到分隔符”错误
- apache-kafka - Producer clientId=producer-1 Bootstrap broker localhost:9092 (id: -1 rack: null) 断开连接 - Spring Boot Kafka
- sql - sql - INSTEAD OF INSERT 触发器 - 插入前清除值
- c# - Akka.NET FSM - 测试 OnTermination 转换
- azure - 无法使用 Visual Studio Code 创建 Azure 逻辑应用工作流
- postgresql - DEFAULT PRIVILEGES 语句是否可以由另一个非超级用户角色拥有?
- regex - 正则表达式:匹配不是双引号,中间有破折号
- regex - 如何正确使用正则表达式从 Bash 中的命令输出中进行搜索?
- java - 尝试创建 XSSFWorkbook() 时出现 NoClassDefFoundError