我想转换这个转换/截断值的PHP代码片段:
这是php代码:
$currentcost = 42.35;
$currentcost = explode(".", $currentcost);
if($currentcost[1] <= 35) {
$currentcost[1] = 99;
$currentcost[0] -= 1;
}
echo $output = $currentcost[0] . "." . $currentcost[1];
这应该是条件:
x.35 其中x是任意数字。如果十进制数小于或等于35,则将.35转换为99并用1减去x值。
这样的事情:
42.35将变为41.99
答案 0 :(得分:2)
如果您想将其按原样移植到Javascript(没有%
优化,如此处的其他答案所示),请查看array.split方法文档。它应该像这样工作:
var currentcost = 42.35;
var costpart = String(currentcost).split(".");
if (costpart[1] <= 35) {
costpart[1] = 99;
costpart[0] -= 1;
}
var output = costpart[0] + "." + costpart[1];
document.write(output);
答案 1 :(得分:1)
在这里,它使用模运算符来获取数字的小数部分:
var currentcost = 42.35;
if ( (currentcost*100) % 100 <= 35) {
currentcost = Math.floor(currentcost) - 0.01;
}
document.write(currentcost);
编辑:有关此处处理浮点值的方法的说明,请参阅this question。