Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 四舍五入到10的下一个倍数_Vb.net_Visual Studio 2015_Rounding - Fatal编程技术网

Vb.net 四舍五入到10的下一个倍数

Vb.net 四舍五入到10的下一个倍数,vb.net,visual-studio-2015,rounding,Vb.net,Visual Studio 2015,Rounding,在VB中,如何将值舍入到10的下一个倍数 e、 g 我发现有些东西说使用一个圆形函数,但当我将它输入到我的IDE(Microsoft Visual Studio Express 2015)中时,它无法识别它 提前感谢使用天花板功能进行汇总。(信息) 先将其除以10,然后再将其乘以10即可 更新:如果您想知道,Integer没有问题这是一个基于Integer的解决方案 myNumber = If(myNumber Mod 10 = 0, myNumber, If(myNumber > 0,

在VB中,如何将值舍入到10的下一个倍数

e、 g

我发现有些东西说使用一个圆形函数,但当我将它输入到我的IDE(Microsoft Visual Studio Express 2015)中时,它无法识别它


提前感谢使用
天花板
功能进行汇总。(信息)

先将其除以10,然后再将其乘以10即可


更新:如果您想知道,Integer没有问题

这是一个基于
Integer
的解决方案

myNumber = If(myNumber Mod 10 = 0, myNumber, If(myNumber > 0, 10, 0) + 10 * (myNumber \ 10))

它不受四舍五入的影响,而且比使用
数学至少快2倍。在visual basic中,用谷歌搜索
四舍五入到10的下一个倍数似乎可以产生很多结果,例如。似乎有更多的方法不仅仅是
round()
我尝试过这个方法,但它不识别round
round(X/N)*N
谢谢@CodeiSir,它工作得很好这不是一个很好的解决方案。
Math.Ceiling
中只有两个重载可用于
Double
Decimal
。在
Integer
的情况下,对
Math.Ceiling
的调用被转换为
Double
。这可能会导致舍入错误。向下投票意味着“这个答案没有用”,为什么要向下投票?当然,使用函数具有函数的效果,因此使用函数更合适。向下投票用于“最不有用”和“不有用”的答案。在您的回答中,您正在进行一些类型转换,它仅适用于
选项Strict Off
。如果将
选项设置为Strict On
,则此代码甚至不会编译。这不是一个好的健壮的解决方案。你是说没有人应该使用
Math.Ceiling
,但这只是你的观点。答案绝不是错的。无论如何,他想使用
round
,所以这正是他想要的。@Enigmativity
Math.天花(CDec(myNumber)/10)*10
编译得很好,即使使用
选项Sctrict On
Math.天花也不会影响整数的精度。您可以用double表示一个高达53位的整数而不会丢失,但是VB只使用32位整数。这就是整型可以随时转换为双精度的原因。()双打上的
mod
也祝你好运。@CodeiSir-双打上的
mod
在哪里?@Enigmativity OP的问题没有明确定义输入为
integer
,你是这样解释的。我认为“thisNum是一个字符串”就足以暗示这一事实:-)如果我需要使用
整数执行此操作,您的方法将得到我的投票@Jeroen-你从哪里得到“thisNum是字符串”的?这不在OP的问题或任何评论中。@Enigmativity我说那句话是开玩笑的,你甚至回应了。
myNumber = Math.Ceiling(myNumber / 10) * 10
myNumber = If(myNumber Mod 10 = 0, myNumber, If(myNumber > 0, 10, 0) + 10 * (myNumber \ 10))