为什么在格式化数字时,NSString类会不一致地取整?
以下两行的输出似乎表明NSString的StringWithFormat语句不会始终如一.它似乎从0.75到0.8正确汇总.但是它使0.25降至0.2.这是代码. NSString *sRoundedScore = [NSString stringWithFormat:@"%.1f", fScore]; NSLog(@"\r\n score before rounding: %f, rounded score: %@", fScore, sRoundedScore); 当Fscore分配为0.25时,输出为: score before rounding: 0.250000, rounded score: 0.2 当Fscore分配为0.75时,输出为: score before rounding: 0.750000, rounded score: 0.8 我必须开始使用nsnumberformatter来使其始终如一.为什么字符串Withfo
2 2023-06-03
编程技术问答社区
当使用天花板或圆形时,对成员的参考不明确
我只是想在swift中使用ceil或round函数,但正在获得编译时间错误: 模棱两可的引用" ceil". 我已经导入Foundation和UIKit模块.我试图在有没有import语句的情况下进行编译,但没有运气.有人知道我在做什么错吗? 我的代码如下; import UIKit @IBDesignable class LineGraphView: GraphView { override func setMaxYAxis() { self.maxYAxis = ceil(yAxisValue.maxElement()) } } 解决方案 此问题是因为一开始似乎很奇怪的事情而发生,但很容易解决. 简单地说,您可能会认为ceil()回合一个浮点数到其最近的整数,但实际上它根本不会返回整数:如果您给它Float,它将返回a ,如果您给它Double它将返回a Double. 因此,此代码之所以起作用,是因为c最
12 2023-06-02
编程技术问答社区
根据php的分数汇总小数
我正在努力将Excel公式转换为PHP功能.现在,我面临的问题是分数.请让我解释一下: (2 * 18)/2.98 = 12.08,但根据我的要求,应为12.25 (2 * 18.5)/2.98 = 12.416,但根据我的要求,应为12.50 (2 * 18.8)/2.98 = 12.617,但根据我的要求,应为12.75 在excel中,它像: 一样完成 天花板((2 * 18)/2.98,0.25)= 12.25 天花板((2 * 18.5)/2.98,0.25)= 12.50 天花板((2 * 18.8)/2.98,0.25)= 12.75 我尝试了PHP. ceil()和floor()不执行目的,因为这2应相应地给出13和12的输出. 另一回合()使用以下选项PHP_ROUND_HALF_UP, PHP_ROUND_HALF_DOWN, PHP_ROUND_HALF_EVEN, or PHP_ROUND_HALF_ODD,该选项无法达到目
0 2023-06-02
编程技术问答社区
圆形php功能无法正常工作
php函数round无法正常工作. 我有号码0.9950. 我放置代码: $num = round("0.9950", 2); 我得到1.0?为什么??为什么我无法获得0.99? 解决方案 您可以在功能中添加第三个参数,以使其完成您需要的工作. 您必须从以下一项中进行选择: php_round_half_up php_round_half_down php_round_half_even php_round_half_odd 这个常数很容易理解,因此只需使用改编的常数:) 在您的示例中,要获得0.99,您需要使用: 其他解决方案 当您 round 0.9950到两个小数点位置时,您会得到1.00,因为这就是舍入的工作方式.如果您想要一个将导致0.99的操作,那么也许您正在寻找浮点截断.将浮点数截断到两个小数点位置的一个选项是乘以10
0 2023-06-02
编程技术问答社区
php round()不像预期
我正在尝试围绕我拥有的大量数量,看来回合无法正常运行.输出应该是1.53,但我得到了1.5300000000000000266453525910037569701671600341796875. $roundMe = 1.5294000046599232067734419615590013563632965087890625; $rounded = [ 'rounded' => round($roundMe) ]; 什么会导致这不会输出我的期望? 解决方案 round()返回float而不是string,因此您必须处理浮点算术及其怪癖: float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] ) 取决于您的确切需求,您可能需要给出 number_format() try: string number_format ( float $num
0 2023-06-02
编程技术问答社区
在PHP中对特定的小数位进行四舍五入
如果该变量大于.3,我想汇总我的变量,如果它较低或相等,则它将圆形掉落,例如,如果我有1.34,它将围绕2,如果我有2 C3>它将舍入至1,如果我有1.3,它将舍入至1.我不知道该如何精确地执行此操作,现在我正在使用这样的圆形基本功能: $weight = $weight/1000; if($weight 3.1) $result = ceil($number); else $r
0 2023-06-01
编程技术问答社区
PHP:将一个数字四舍五入到小数点后16位上
嗨,我正在尝试将一个数字舍入 16个十进制数字 ,但直到 14个十进制数字才显示出来. 这是我的尝试: 输出: -0.16346153846154 预期输出: 0.1634615384615385 我知道 float 仅是14个小数位数. 16个小数位数 还有其他方法 解决方案 您可以在运行时设置此参数.通常最大16位数字 在大多数平台上的价值,较大的价值仅给出毫无意义或"虚构" 数字: ini_set("precision", "16"); 参见其他解决方案 最近,我们从Excel文件中读取金额(十进制数字)的问题,该文件的十进制数字是十进制之后的14位数字.使用高级算法来转换小数号的选项后,该问题是解决的.为此,我们
0 2023-06-01
编程技术问答社区
round()模式round_half_down,php 5.2.17
我需要在PHP 5.2.17中模拟Round_half_down模式 - 我无法升级服务器的PHP版本.有什么想法如何实现这一目标? 基本思想是1.895变为1.89,而不是通常使用(). . 编辑: 此功能似乎可以解决问题: function nav_round($v, $prec = 2) { // Seems to fix a bug with the ceil function $v = explode('.',$v); $v = implode('.',$v); // The actual calculation $v = $v * pow(10,$prec) - 0.5; $a = ceil($v) * pow(10,-$prec); return number_format( $a, 2, '.', '' ); } 解决方案 您可以在精度上取下0.5^p,然后使用天花板:
0 2023-06-01
编程技术问答社区
在jpeg文件中添加圆角
我正在尝试将圆角添加到JPEG文件中,但是问题是在添加圆角后,我将获得黑色背景颜色.不知何故,我无法将其更改为任何其他颜色(白色,透明,红色).它只是显示了图像圆角的黑色背景. 我使用的代码是: setBackgroundColor("red"); $image->setImageFormat("jpg"); $image->roundCorners(575,575); $image->writeImage("rounded.jpg"); header('Content-type: image/jpeg'); echo $image; ?> 我不能使用PNG,因为JPEG文件很大,大约为5 MB,因此,如果我使用PNG,即使PNG添加了透明的圆角,文件大小也会达到26 MB. . 我使用的Imagick版
0 2023-06-01
编程技术问答社区
如何对小数点进行四舍五入?
一旦有十进制,我如何使用round()将一个数字舍入数字? 例如: 1.00001 = 2 1.1 = 2 1.4785834975 = 2 1.00 = 1 1.99 = 2 3.01 = 4 解决方案 是的,您要寻找的是 其他解决方案 这可能对您有帮助: floor()将下降. ceil()将上升. round()将默认转到最近.
4 2023-06-01
编程技术问答社区
将价格转至最接近$ xx.99
我想将价格(上下或下降)到最接近$ xx.99 例如: $17.99 -> Stay as is $22.03 -> $21.99 $33.85 -> $33.99 $45 -> $44.99 解决方案 添加0.01,圆,负0.01 $input = 17.99; // example input $add = $input + 0.01; $round = round($add); $output = $round - 0.01; 或多合一: return round($input + 0.01) - 0.01;
0 2023-05-31
编程技术问答社区
使用php货币格式并在小数位后删除数字
我想使用GB货币格式将一些数字从分析中格式化为货币,但作为仪表板,不需要那么精确,因此我想删除便士(十进制之后的数字)它有助于CSS布局,我该怎么做?向上或下到最近的磅是可以的. 我的代码如下: //set locale for currency setlocale(LC_MONETARY, 'en_GB'); $sales = '8932.83'; echo utf8_encode(money_format('%n', $sales)); 此输出:£8,932.83 但是,我该如何将其绕成一团,仅在小数点之后就只有8,932英镑. 我想使用货币格式,因为有时数字为负面,在这种情况下,yrone_format返回数字 - £8,932.83,比£-8,932更可取(错误方式上的磅和负符号),这是我格式化时发生的情况使用number_format这样: echo '£'.number_format($sales, 0, '', ',');
0 2023-05-30
编程技术问答社区
如何处理PHP中浮点的奇怪四舍五入问题
众所周知,浮点算术并不总是完全准确,但是您如何处理其不一致之处? 作为一个例子,在php 5.2.9中: (这在5.3中没有发生) echo round(14.99225, 4); // 14.9923 echo round(15.99225, 4); // 15.9923 echo round(16.99225, 4); // 16.9922 ?? echo round(17.99225, 4); // 17.9922 ?? echo round(25.99225, 4); // 25.9922 ?? echo round(26.99225, 4); // 26.9923 您将如何解决这个问题? 解决方案 欢迎来到IEEE754,享受您的住宿. 使用 bc 或 gmp 而不是. 其他解决方案 您如何处理它 不一致? 对于基于十进制表示问题的确切结果的东西(即钱), 不使用 ieee754 floats,您使用" bignum"
0 2023-05-30
编程技术问答社区
在PHP中四舍五入显示科学符号而不是整数
我正在尝试进行包含1400000的变量的回声. 因此有写道:echo round(1400000); 这给出了1,4e+6而不是全部数字. 有人想到如何完全显示它吗? 解决方案 看来,回合是问题所在. 我用number_format()更改了它,这可以很好地完成工作. 感谢Aron和Paul的答案. 其他解决方案 与您的问题有关,我也遇到了此评论在PHP网站上. PHP从标准小数开关 指数符号表示法 某些"特殊"浮子.你可以看到 这种"特殊"的部分清单 与此相关的值: for( $tmp = 0, $i = 0; $i
0 2023-05-30
编程技术问答社区
汇总到最接近的50,000 php
有没有办法将汇总到最接近的50,000 php? 我已经进行了调查,但是文档并不建议这样做的方法,而且看起来似乎只是为了向上/向下四舍五入到最近的数字.谢谢. 解决方案 /** * Round a number up to the nearest multiple of $n. * * @param int $int Number to round. * @param int $n Round to the nearest $n. * * @return int */ function round_up_to_nearest_n($int, $n) { return ceil($int / $n) * $n; } echo round_up_to_nearest_n(74268, 50000); //Outputs 100000 除以您要围绕的数字,进行舍入,然后再次乘以它. 其他解决方案 怎么样: $number = cei
2 2023-05-29
编程技术问答社区
php- number_format和Founding
PHP中的number_format函数似乎默认情况下是圆形的.我的理解是,此功能对于将每三个数字与逗号分开很有用.像1403423使用number_format时变为1,404,423. 所以,如果我有一个我想四舍五入到小数点的大量位置,我该怎么做并仍然正确显示逗号? 所需的行为:12042.529-> 12,042.53 解决方案 $a=12042.529; echo number_format($a,2,'.',',');
0 2023-05-29
编程技术问答社区
度与毫秒之间的转换
我知道从程度转换为毫秒到副副主席的方形.可以这样实现: protected function decimal_to_milisecond($dec) { if (!empty($dec)) { $vars = explode(".",$dec); if (count($vars) == 2) { $deg = $vars[0]; $tempma = "0.".$vars[1]; $tempma = $tempma * 3600; $min = floor($tempma / 60); $sec = $tempma - ($min*60); return round((((($deg * 60) + $min)
0 2023-05-29
编程技术问答社区
php到达第二个小数位
通过计算区域,我需要以一种奇怪的方式显示的数字. 始终显示2个小数点. 如果第三+十进制位置> 0. 示例: 0.5 = 0.50 0.500003 = 0.51 0.96531 = 0.97 0.96231 = 0.97 0.8701 = 0.88 是否有内置功能可以在PHP中执行此操作,或者我需要写一个? 解决方案 您可以使用2个功能: round() - 文档在这里: http://www.php.net/manual/en/function.round.php number_format() - docs在这里: http://ro1.php.net/number_format li> 我既有成功,又取决于您所做的结果,您可以选择上述任何一个功能. 以后的编辑:如果您只想汇总,则可以使用ceil() - http://www.php.net/manual/en/function.ceil.php +数字格式或圆形 echo ro
6 2023-05-29
编程技术问答社区
圆形整数到php中最接近5个倍数
搜索一个函数ro圆数到最接近5 的倍数 22 -> 20 23 -> 25 40 -> 40 46 -> 45 48 -> 50 等等. 尝试了总是返回较高值的此操作: 5 * ceil($n / 5); 解决方案 使用round()而不是ceil(). 5 * round($n / 5); ceil()将一个浮点数弹出到其下一个整数的顺序. round()将使用标准舍入规则将圆形整数四舍五入. 其他解决方案 回到数学,因为圆形可与小数组合起作用,乘以5,然后除以10,然后圆.再次乘以5,以获取您想要的东西. (其他答案也有效,只是看待它的另一种方式) ) function round_5($in) { return round(($in*2)/10)*5; } echo round_5(48); 看看这是否有帮助 其他解决方案 好吧,在帮助加拿大公司制造POS的同时,面对这个问题,想出了该解决方案,希望它能帮助某人.
2 2023-05-28
编程技术问答社区
PHP圆形小数
可以用这样的php将小数圆成最接近的.5: number | round ---------------- 1.29 | 1.50 2.03 | 2.00 1.43 | 1.50 1.13 | 1.00 11.38 | 11.50 我尝试了: $rnd= round($number,2); ,但我得到的小数是上面"编号"列中的小数. 解决方案 function round_to_nearest_half($number) { return round($number * 2) / 2; } 其他解决方案 您不想为此PHP圆形功能编写任何功能已经具有选项,在模式下是圆形功能的第三个参数.有关更多参考 php round函数
2 2023-05-28
编程技术问答社区