我们的教授。不久前给了我们这个伪代码......而我在这部分上遇到了困难
伪代码
数组索引值为 14,有 14 个字符串名称
Shell_Sort(Arr,N)
{ 如果(N=1)那么
{
退出
}
将间隔设置为 N
while(间隔不为1)
{
将间隔设置为 ((间隔/3)+1) 如果(间隔不是整数)那么<---------这是我遇到问题的部分
{
截断间隔<------------ 这里我怎样才能将间隔截断为整数?
}
将开始设置为 1
while(开始 <= 间隔)
{
排序()
增量开始
}
}
}
排序()
{
将 Unsrt_Indx 设置为(开始 + 间隔)
while(unsrt_Indx <= N)
{
if (Arr[Unsrt_Indx - 间隔] > arr[unsrt_Indx] then
{
将 str_indx 设置为 unsrt_indx
将温度设置为 arr[srt_indx]
while((str_indx >start && (arr[str_indx-Interval] > temp))
{
将 arr[set_indx] 设置为 arr[str_index-interval]
将 str_indx 设置为(crt_index - 间隔)
}
将 arr[str_indx] 设置为临时
}
将 unsrt_indx 设置为(unsrt_indx + 间隔)
}
}
如何使用 if 语句来确定它是否不是整数?
我该如何使用截断? 将其截断为三两。
ex.
4.6666666666667
how can i truncate it into
4.67
4.6
4
类似的东西。
最佳答案
如果您知道自己正在处理一个号码,您可以这样做:
if(x == (int)x) {
//x is an int (ie: a whole number)
}
否则,如果您的数字是字符串,则可以使用 try/catch 语句,在该语句中对字符串执行 Integer.parseInt()
。如果 parseInt() 成功,那么您正在处理一个 int。否则,您可能会捕获 NumberFormatException。在这种情况下,转换不成功,并且您处理的不是 int。
您需要查看 Math.floor()
来进行截断。
关于java - 截断为整数...以及 if 语句确定它是否不是整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15221848/