首页 > 其他分享 >科学技术法与数值之前的转换

科学技术法与数值之前的转换

时间:2023-04-20 13:46:38浏览次数:30  
标签:numStr 转换 power resValue 数值 num result 科学技术 var

一、JAVA

1、科学技术法转数值

BigDecimal za = zaVal1.divide(val2);// 9.05E-8

String za2 = za.toPlainString();//0.0000000905

2、数值转科学技术法

BigDecimal za4 = new BigDecimal(za2);// 9.05E-8

String za5 = za.toString();//9.05E-8

二、JS

1、科学技术法转数值

function  convertNUM(num_str) {
//科学计数法字符 转换 为数字字符, 突破正数21位和负数7位的Number自动转换
// 兼容 小数点左边有多位数的情况,即 a×10^b(aEb),a非标准范围(1≤|a|<10)下的情况。如 3453.54E-6 or 3453.54E6
var resValue = '',
power = '',
result = null,
dotIndex = 0,
resArr = [],
sym = '';
var numStr = num_str.toString();
if (numStr[0] == '-') { // 如果为负数,转成正数处理,先去掉‘-’号,并保存‘-’.
numStr = numStr.substr(1);
sym = '-';
}
myConsoleLog(numStr);
if ((numStr.indexOf('E') != -1) || (numStr.indexOf('e') != -1)) {
var regExp = new RegExp('^(((\\d+.?\\d+)|(\\d+))[Ee]{1}(([+-](\\d+))|(\\d+)))$', 'ig');
result = regExp.exec(numStr);
myConsoleLog(result);
if (result != null) {
resValue = result[2];
power = result[5];
result = null;
}
if (!resValue && !power) {
return false
}
dotIndex = resValue.indexOf('.');
resValue = resValue.replace('.', '');
resArr = resValue.split('');
if (Number(power) >= 0) {
var subres = resValue.substr(dotIndex);
power = Number(power);
//幂数大于小数点后面的数字位数时,后面加0
for (var i = 0; i < power - subres.length; i++) {
resArr.push('0');
}
if (power - subres.length < 0) {
resArr.splice(dotIndex + power, 0, '.');
}
} else {
power = power.replace('-', '');
power = Number(power);
//幂数大于等于 小数点的index位置, 前面加0
for (var i = 0; i <= power - dotIndex; i++) {
resArr.unshift('0');
}
var n = power - dotIndex >= 0 ? 1 : -(power - dotIndex);
resArr.splice(n, 0, '.');
}
}
resValue = resArr.join('');
myConsoleLog(sym + resValue);
return sym + resValue;
}

2、数值转科学技术法

var dbValue = 9.05E-8;
var val = math2science(dbValue);//0.0000000905
math2science:function(math){
var result = toExponential(math,2);
result = result.replace(/e/,"E");
if (result.length == 7)
{
result = result.substr(0,6) + "0" + result.substr(6);
}
return result;
},
toExponential:function(_num,d){
if(!this.IsNum(_num)) return _num;
var _tmpNum = Math.abs(Number(_num));
var _tmpS = _tmpNum.toExponential();
var _tmpSNum = this.toFixed(Number(_tmpS.substr(0,_tmpS.indexOf('e'))),d);
var _tmpSEStr =_tmpS.substr(_tmpS.indexOf('e'));
var _resultValueABS = _tmpSNum + _tmpSEStr;
return (_num > 0 )?_resultValueABS:"-" + _resultValueABS;
}
 
 

标签:numStr,转换,power,resValue,数值,num,result,科学技术,var
From: https://www.cnblogs.com/xlj227/p/17336433.html

相关文章

  • 每个节点上的cadvisor采集数据后通过aggregate api将转换交给 metric-server
    metric-server主要用来通过aggregateapi向其它组件(kube-scheduler、HorizontalPodAutoscaler、Kubernetes集群客户端等)提供集群中的pod和node的cpu和memory的监控指标,弹性伸缩中的podautoscaler就是通过调用这个接口来查看pod的当前资源使用量来进行pod的扩缩容的。需要注意的是......
  • BigDecimal 的floatValue 方法 返回数值 精度丢失
    packagetest;importjava.math.BigDecimal;importjava.text.DecimalFormat;publicclassA{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubBigDecimala=newBigDecimal("641825.59");System.out.p......
  • 将人民币金额转换为大写 跨单位加零
    /**数字金额大写转换(可以处理整数,小数,负数)*/functionupDigit(n){varfraction=['角','分'];vardigit=['零','壹','贰','叁','肆','伍','陆','柒','......
  • 3-2 输入一个8位二进制数,将其转换为十进制数输出。
    设计思路:c++语言的循环结构以及函数的定义及使用相结合可实现程序的运行。 代码:#include<iostream>usingnamespacestd;doublepower(doublex,intn);intmain(){intvalue=0;cout<<"Enteran8bitbinarynumber:";for(inti=7;i>=0;i--)char......
  • 数制转换
    自然语言解决问题:该题目主要用来处理不同进制间互相转化,将原数转换成十进制数字,接着求出转换成目标数制后字符数组的长度,并逆序打印字符数组。具体代码:#include<stdio.h>#defineMAXCHAR101intchar_to_num(charch);charnum_to_char(intnum);longsource_to_decimal(char......
  • FS2455高效率的同步降压DC-DC转换器5A输出电流
    概述FS2455是一种高效率的同步降压DC-DC转换器,具有5A输出电流。 FS2455在4.5V到30V的宽输入电压范围内工作, 集成主开关和同步开关,具有非常低的RDS(ON)以最小化传导损失。 FS2455具有轻载时的应用和高效率。此外,它的工作频率是恒定的在连续导通模式下为500kHz,以使电感器和电容器的......
  • gotenberg+ chromiumly + pdf.js 进行office 文档转换以及预览处理
    日常中office预览是一个比较常见的问题,基于微软的officeonline是一个选择,但是移动端效果不是很好就有pdf以及一些基于生成图片的方案也是不错的,以下是基于gotenberg+chromiumly的一个尝试简单说明gotenberg是基于golang开发的包装了Chromium以及LibreOffice的基于api......
  • 数制转换
    给定一个M进制的数x,实现对x向任意一个非M进制的数的转换。利用字符和数字之间的转换将要变换进制的数进行转换成要求进制的数。#include<iostream>usingnamespacestd;#defineMAXCHAR101intchar_to_num(charch){ if(ch>='0'&&ch<='9') { returnch-'0'; }else{ returnch......
  • 数制转换
    问题描述:给定一个M数制的整数x,转换为N数制的数并输出;问题分析:数制的任意转换需要清除数制与数制之间的转换关系,一般来说十进制与其他数制的转换是较为简单和有规律的;所以可以先将改数制转换为十进制数再转换为N进制数;算法设计:1.输入一个整数M作为其起始的数制2.输入一个M数制......
  • java -- 缓冲流、转换流、序列化流
    缓冲流缓冲流,也叫高效流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。字节缓......