hook_views_data and DECIMAL columns
The 'numeric' type classes handle both integers and floats/decimals:

Field handler: views_handler_field_numeric
Filter handler: views_handler_filter_numeric
Argument handler: views_handler_argument_numeric
Validation plugin: views_plugin_argument_validate_numeric

It's not that obvious at face value, but if you look at the comments for views_handler_field_numeric:

Definition terms:

float: If true this field contains a decimal value. If unset this field will be assumed to be integer.


So setting 'float' =&gt; TRUE on your field definition, and using the numeric handlers, is all you need to do. e.g
$data['some_table']['msrp'] = array(
  'title' =&gt; t('MSRP'),
  'help' =&gt; t('MSRP of the product.'),
  'field' =&gt; array(
    'handler' =&gt; 'views_handler_field_numeric',
    'click sortable' =&gt; TRUE,
    'float' =&gt; TRUE,
  ),
  'filter' =&gt; array(
    'handler' =&gt; 'views_handler_filter_numeric',
  ),
  'sort' =&gt; array(
    'handler' =&gt; 'views_handler_sort',
  ),
);