正则表达式,用于将数字转换为数字,小数精度为3

时间:2015-12-30 12:49:33

标签: sql regex replace oracle11g toad

我有一个带有数值的列,其中最后3位实际上应该在小数点后面。

e.g。

  • 89302500
  • 1260840
  • 218580

我需要一个正则表达式,将小数点放在最后3位数之前:

  • 89302.500
  • 1260.840
  • 218.580

我使用REGEXP_REPLACE功能更改了值的格式,但我无法找到实现此目的的方法。是否可以编写这样的正则表达式并用它来替换值格式?

3 个答案:

答案 0 :(得分:2)

您不在数字上使用正则表达式。如果你想要一个精度为3的数字

select cast(col / 1000 as number(18, 3))

如果您希望将其表示为字符串,请在to_char()上使用col / 1000

答案 1 :(得分:1)

如果你想使用正则表达式实现这一点,那么你可以使用这样的正则表达式:

function myFunction() {
        var agevalue;
        var radiobuttons = document.getElementsByName("age");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 agevalue = radiobuttons[i].value;
             }
         }                  

        var bmivalue;
        var radiobuttons = document.getElementsByName("bmi");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 bmivalue = radiobuttons[i].value;
             }
         }

        var familyvalue;
        var radiobuttons = document.getElementsByName("family background");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 familyvalue = radiobuttons[i].value;
             }
         }

        var dietvalue;
        var radiobuttons = document.getElementsByName("diet");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 dietvalue = radiobuttons[i].value;
             }
         }
         var total = parseInt(agevalue) + parseInt(bmivalue) + parseInt(familyvalue) + parseInt(dietvalue);

         if (total <=15){
         document.getElementById("results").innerHTML= "Result 1"; }

         if (total >=16 && total <=25){
         document.getElementById("results").innerHTML= "Result 2"; }

         if (total >25){
         document.getElementById("results").innerHTML= "Result 3" ; } 

if (parseInt(agevalue) >= 10 || parseInt(bmivalue) >= 10 || parseInt(familyvalue) >= 10 || parseInt(dietvalue) >= 10);
     {
        document.getElementById("risks").innerHTML= "Your risks are: "

     }
                    }   

<强> Working demo

根据documentation,你可以这样做:

(\d*)(\d{3})

答案 2 :(得分:1)

Tony Andrews提出的解决方案

var knex = require('knex')({
  client: 'mysql',
  connection: {
    host     : '...',
    user     : '...',
    password : '...',
    database : '...'
  }
});
var JSONStream = require('JSONStream');
var express = require('express');
var app = express();

app.get('/', function (req, res) {
    var sql = knex.select('*').from('table').limit(3);
    res.set('Content-Type', 'application/json');
    sql.stream().pipe(JSONStream.stringify()).pipe(res);
});

var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);
});