abaqus视图中如何不使用科学计数法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了abaqus视图中如何不使用科学计数法相关的知识,希望对你有一定的参考价值。

参考技术A 通过查看abaqus的错误信息:keyword*ELEMENT,file"meshfa.inp",line110394:Periodcannotbeusedwithinset,surface,orientation,instance,andassemblynamesinamodeldefinedintermsofanassemblyofpartsThisoccurredwhileparsingtheinputfile.这句话指出你的inp文件中,对单元的定义中,有句号,这是abaqusinp文件语法所不允许的,inp文件只允许有空格,逗号,空行都不能有.我提出的检查意见如下:请检查hypermesh用户界面是不是在abaqus中(标题栏是否有abaqus这个单词),请通过如下方法转化.tool->convert->abaqus.是否有打开inp文件修改.inp文件可以用记事本打开,inp语法很简单,具体请直接百度“abaqusinp格式”是否是通过abaqus中的file->inport->model,导入的. 参考技术B

点击Viewport---Viewport Annotation Options---Legend---Format---Fixed---OK

Java中字符串如何能够不使用科学计数法啊。我查了半天回没有合适的做法。先说明不能损失精度,不能改变值。

如:.00001122334254235输出也要是这个,不使用科学计数法,不损失精度,而且不能变成0.xxxx(不能添0).

import java.text.*;
class Test1

public static void main(String [] args)
double i = 0.00001122334254235;
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(18);
String is = formatter.format(i);
System.out.println(is);


;

//写完那个才发现
//可以直接用printf
//System.out.printf("%1.17f",0.00001122334254235);

%1.17f损失精度了???? 这是设定格式 没见过printf?????
整数部分一位 小数部分17位 上面的完整程序也是现查API写的
复制粘贴你妹!!!追问

嗯嗯,好像是你没理解我的意思。17位?如果我有20位是不是就损失三位了?

追答

如果不想用一次写一次就只能用我上面的代码 但是我没看到你不要小数点前面的0
下面的代码 可以实现了 把MaximumFractionDigits设大一点就行了 我加了一句 小数前面的0可以不显示了
//完整代码

import java.text.*;
class Test1

public static void main(String [] args)
double i = 0.00001122334254235;
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(63);
//最大小数位数设成63 满足了
formatter.setMinimumIntegerDigits(0);
//最小整数位数设成0 比一小的整数就可以不显示小数点前面的0
String is = formatter.format(i);
System.out.println(is);

追问

这样的话貌似就如果我只有10位,后面是不是就要补多余的0了?
我查到的方法是用stripTrailingZeros()和toPlainString();可以解决问题,关于0.X的问题,if(str.startsWith("0."))
str = str.substring(1);
//就行了
不过还是谢谢。

追答

不补零 printf的方法会补零 所以我重写上面那个 方法的名字就可以看出来了 .setMaximumFractionDigits 最大位数

参考技术A import java.text.DecimalFormat;

public class Test1
public static void main(String args[])
String str = "0.00001122334254235";
DecimalFormat df = new DecimalFormat(".00000000000000000");
System.out.println(df.format(Double.parseDouble(str)));

追问

你和上面的同学一个问题的...如果我那数再长一点,不就损失精度了?

追答

那一串0你可以写一个循环根据你字符串小数点后面的长度生成。
public static void main(String args[])
String str = "0.00001122334254235";
String format_str = ".";
int length = str.substring(str.indexOf(".")+1).length();
for(int i=0;i<length;i++)
format_str += "0";

DecimalFormat df = new DecimalFormat(format_str);
System.out.println(df.format(Double.parseDouble(str)));

以上是关于abaqus视图中如何不使用科学计数法的主要内容,如果未能解决你的问题,请参考以下文章

如何使java中double类型不以科学计数法表示

如何使java中double类型不以科学计数法表示

如何让EXCEL中的数据用科学计数法显示

java字符串转数字如何不显示科学计数法

如何在excel 中 如何转成科学计数法

如何让mssqlreal不用科学计数法显示